/******************************************************************************/
/*  Class AUTOMUTEX                                                           */
/*  PO: S. Maslyakov, rusoil.9@gmail.com                                      */
/*                                                                            */
/*  Revision:     1.0                                                         */
/*  Date:         2011/02/14 13:33:33                                         */
/******************************************************************************/


#ifndef __AUTOMUTEX_H
#define __AUTOMUTEX_H



//==============================================================================
//  Class AUTOMUTEX
//==============================================================================
class AUTOMUTEX
{
public:
  AUTOMUTEX(void * const _mutex) : m_isMutexLock(-4), m_mutex(_mutex) {}
  ~AUTOMUTEX();
  sint32_t Lock();
  sint32_t LockBlock(const uint32_t _tout);

private:
  sint32_t m_isMutexLock;
  void * const m_mutex;
};
//==============================================================================
//==============================================================================


#endif